let config = require('../../config/config.js')
let QQMapWx = require('../../utils/qqmap-wx-jssdk.js')
let qqmapsdk = new QQMapWx({ key: config.map_key })
let request = require("../../utils/request.js") //封装的request请求

Page({
  /**
   * 页面的初始数据
   */
  data: {
    barHeight: wx.getMenuButtonBoundingClientRect().bottom,
    title:"注册",
    storeState:false, //如果是  添加店铺   就应该禁用并回显 手机号
    nameFlag:false,//如果是  添加店铺   就应该禁用并回显 姓名
    information:{},
    form: {},
    logo:'',
    businessType:'',
    array: ['餐饮','加油站','洗车','养车','商超','其他'],
    loading:false,
    state:'',
    back:"1",
    bank:false, //银行账号验证
    apiUrl:null,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    if(options.data){
      let info = JSON.parse(options.data)
      this.setData({
        telephone:info.telephone,
        username:info.username,
        title:'添加店铺',
        storeState:true,
        nameFlag:false,
        apiUrl:'/shop/shop-info/add-shop-info'   //添加店铺接口
      })
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    //  创建地图
    this.MapContext = wx.createMapContext('myMap');

    //  获取用户当前位置
    this.getLocation()
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    var pages = getCurrentPages();
    var currPage = pages[pages.length - 1]; //当前页面
    let json = currPage.data.mydata;
    if(json){
      if(json.back == 1){
        this.setData({
          state:json.state
        })
      }
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  onChange(e){
    console.log(e)
    if(e.detail.value.length == 0){ 
      this.setData({ 
        state:false
      })
    }else{   
      this.setData({ 
        state:true
      })
    }
    // this.setData({
    //   state: e.detail,
    // });
  },
  /**
   * 注册返回按钮功能
  */
  back(){
    wx.navigateBack({
      delta: 1
    });
  },
  /**
   * 跳转协议页面
  */
  click(){
    wx.navigateTo({
      url: '/pages/agreement/agreement'
    })
  },
  //银行卡验证
  bankAccount(con){
    if(con.length == 0){
      wx.showToast({
        title: '银行账号不能为空',
        duration: 2000,
        icon:'none'
      });
      return false
    }else{
      if(con.length < 12 || con.length > 19){
        wx.showToast({
          title: '银行账号长度必须在12到19之间',
          duration: 2000,
          icon:'none'
        });
        return false
      }else{
        var strBin = "10,18,30,35,37,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,58,60,62,65,68,69,84,87,88,94,95,98,99";
        if(strBin.indexOf(con.substring(0, 2)) == -1) {
          wx.showToast({
            title: '银行账号开头6位不符合规范',
            duration: 2000,
            icon:'none'
          });
          return false;
        }else{
          this.setData({
            bank:true,
          })
        }
      }
    }
  },
  getUserName(e){
    let con = e.detail.value;
    this.bankAccount(con)
  },
  /**
   * 获取输入的表单信息    提交注册信息
  */
  formSubmit(e){
    console.log(e)
    if(!this.data.state){
      wx.showToast({
        title: '请同意商家服务协议',
        duration: 2000,
        icon:'none'
      });
      return false
    }
    // if(e.detail.value.bankAccount.length == 0){
    //   wx.showToast({
    //     title: '银行账号不能为空',
    //     duration: 2000,
    //     icon:'none'
    //   });
    //   return false
    // }else{
    //   if(!this.data.bank){
    //     wx.showToast({
    //       title: '银行账号不符合规范',
    //       duration: 2000,
    //       icon:'none'
    //     });
    //     return false
    //   }
    // }
    if (!(/^1[345789]\d{9}$/.test(e.detail.value.telephone))) {
      wx.showToast({
        title: '手机号码有误',
        duration: 2000,
        icon:'none'
      });
      return false;
    }
    let obj = e.detail.value;
    let longitude = "information.longitude";
    let latitude = "information.latitude";
    let logo = "information.logo";
    let businessType = 'information.businessType';
    this.setData({
      information : obj,
      [businessType] : this.data.businessType,
      [longitude] : this.data.form.longitude,
      [latitude] : this.data.form.latitude,
      [logo] : this.data.form.logo 
    })
    for(var i in this.data.information){
      if(this.data.information[i] != '0' && !this.data.information[i]){
        console.log('请完善数据')
        wx.showToast({
          title: '请填写全部信息',
          icon: 'none'
        })
        return false; // 终止程序
      }
    }
    console.log('走')
    this.setData({
      loading : true
    })
    this.params(this.data.information)
  },
  /**
   *  提交注册信息 addShopInfo
  */
  params(data){
    var _this = this;
    let url = '';
    this.data.apiUrl != null ? url = this.data.apiUrl : url = '/shop/shop-info/register';
    let text = '';
    this.data.apiUrl != null ? text = '提交成功，请在审核成功后查看店铺' : text = "提交成功，请在审核成功后登陆";
    request.http(
      url, 
      'POST', 
      data,
      0
    ).then(res => {
      var data = res.data
      console.log(data)
      if (data.code == 200) {
        if(this.data.apiUrl != null){
          wx.setStorageSync('shopName', data.data.shopName) 
          wx.setStorageSync('shopId', data.data.id) 
          wx.setStorageSync('username', this.data.username) 
          wx.setStorageSync('telephone', this.data.telephone)
        }
        wx.showToast({
          title: text,
          icon: 'none',
          duration: 2000,
          success:function(){
            setTimeout(function () {
              _this.back();
            }, 2000) 
          }
        })
      } else {
        wx.showToast({
          title: data.desc,
          icon: 'none',
          duration: 2000,
        })
        this.setData({
          loading : false
        })
      }
    })
  },
  //当用户输入完手机号失去焦点时，就调取接口，判断是否有手机号，有就显示姓名，并且姓名禁用，没有的话就让商户正常输入。
  sq(event){
    let data=event.detail.value
    let url=`/shop/shop-manager/InfoGetPhone?phone=${data}`
    //console.log(data)
    request.http(
      url, 
      'Get',
    ).then(res => {
      //console.log(res)
      let datas=res.data.data
      if(datas){
        this.setData({
          username : res.data.data,
          nameFlag:true  //禁用姓名
        })
      }else{
        this.setData({
          username : '',
          nameFlag:false  //取消禁用
        })
      }
    })
  },
  phtab(){
    
  },
  /**
   * 选择经营类型
  */
  bindPickerChange: function(e) {
    this.setData({
      index: e.detail.value,
      businessType : Number(e.detail.value)+1
    })
  },
  markertap(e){
    // console.log(e)
  },
    /**
   * 获取用户当前位置
  */
  getLocation() {
    return new Promise((resolve, reject) => {
      let _this = this
      wx.getLocation({
        type: 'gcj02',
        success(res) {
          console.log('获取用户当前位置成功', res)
          var data = res;
          _this.setData({
            form: { longitude: res.longitude, latitude: res.latitude },
            markers: [ { id: 1, longitude: res.longitude, latitude: res.latitude, width: 30, height: 40 } ]
          })
          //  根据坐标查询地址
          qqmapsdk.reverseGeocoder({
            location: { latitude: res.latitude, longitude: res.longitude }, //获取表单传入的位置坐标,不填默认当前位置,示例为string格式
            //get_poi: 1, //是否返回周边POI列表：1.返回；0不返回(默认),非必须参数
            success: (res)=> {
              _this.setData({
                form: { longitude: data.longitude, latitude: data.latitude,shopAddress: res.result.address },
              })
            },
            fail: function(error) {
              console.error(error);
            }
          })
          resolve(res)
        },
        fail(err) {
          console.error('获取当前位置失败：', err.errMsg)
          reject(err)
        }
      })
    })
  },
  /**
   * 获取地址
   */
  getAddress(e){
    //  根据地址获取坐标
    qqmapsdk.geocoder({
      address: e.detail.value,
      success: (res)=> {
        let longitude = 'form.longitude';
        let latitude = 'form.latitude';
        let shopAddress = 'form.shopAddress';
        this.setData({
          [longitude] : res.result.location.lng,
          [latitude] : res.result.location.lat,
          [shopAddress] : e.detail.value,
          markers: [ { id: 1, longitude: res.result.location.lng, latitude: res.result.location.lat, width: 30, height: 40 } ]
        })
        this.MapContext.moveToLocation({ longitude: res.result.location.lng, latitude: res.result.location.lat })
      },
      fail: (err) => {
        console.error(err)
      }
    })
  },
  /**
   * 设置坐标
   */
  setLocation(e) {
    console.log(e)
    let longitude = 'form.longitude';
    let latitude = 'form.latitude';
    this.setData({
      [longitude] : e.detail.longitude,
      [latitude] : e.detail.latitude,
      markers: [ { id: 1, longitude: e.detail.longitude, latitude: e.detail.latitude, width: 30, height: 40 } ]
    })
  },
  /**
   * 上传图片
   */
  uploadImage(){
    let _this = this
    wx.chooseImage({
      count: 1,
      success (res) {
        const tempFilePaths = res.tempFilePaths
        wx.uploadFile({
          url: 'https://file.zmzncs.com/upload/upload-batch',
          filePath: tempFilePaths[0],
          name: 'files',
          formData: {},
          success (res) {
            let data = res.data
            data = JSON.parse(data)
            console.log(data)
            let logo = 'form.logo'
            _this.setData({ 
              [logo] : data.data[0].url
            }) 
          }
        })
      }
    })
  }
})











